{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Vector Representations of Words"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "# -*- coding: utf-8 -*-\n",
    "    \n",
    "# Copyright 2015 The TensorFlow Authors. All Rights Reserved.\n",
    "#\n",
    "# Licensed under the Apache License, Version 2.0 (the \"License\");\n",
    "# you may not use this file except in compliance with the License.\n",
    "# You may obtain a copy of the License at\n",
    "#\n",
    "#     http://www.apache.org/licenses/LICENSE-2.0\n",
    "#\n",
    "# Unless required by applicable law or agreed to in writing, software\n",
    "# distributed under the License is distributed on an \"AS IS\" BASIS,\n",
    "# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n",
    "# See the License for the specific language governing permissions and\n",
    "# limitations under the License.\n",
    "# ==============================================================================\n",
    "\n",
    "from __future__ import absolute_import\n",
    "from __future__ import division\n",
    "from __future__ import print_function\n",
    "\n",
    "import collections\n",
    "import math\n",
    "import os\n",
    "import random\n",
    "import zipfile\n",
    "\n",
    "import numpy as np\n",
    "from six.moves import urllib\n",
    "from six.moves import xrange  # pylint: disable=redefined-builtin\n",
    "import tensorflow as tf\n",
    "import codecs"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Data size 2459164\n"
     ]
    }
   ],
   "source": [
    "f = codecs.open('thai_text','r','utf-8');\n",
    "words = tf.compat.as_str(f.read()).split()\n",
    "print('Data size', len(words))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "words =  ['ออก', 'บล', 'จ.', 'มากสุด', 'เงิน', 'ออก', 'บลจ.', 'มาก', 'สุด', 'ปม', 'ผิด', 'นัดหนี้', 'บีอีพ่นพิษมอนิ่งสตาร์', 'เผย', 'ไตรมาส', 'แรก', 'นี้', 'บลจ.', 'เงิน', 'ไหล', 'ออก', 'มาก', 'สุด', 'หลัง', 'เกิด', 'ภาวะ', 'ผิด', 'นัด', 'ชำระ', 'หนี้', 'ตรา', 'สาร', 'ตั้งแต่', 'ปลาย', 'ปี', 'ก่อน', 'และ', 'นัก', 'ลง', 'ทุน', 'ชะลอ', 'ลง', 'ทุน', 'พบ', 'เงิน', 'ไหล', 'เข้า', 'กอง', 'ทุน', 'รวม', 'สุทธิเพียง', ',', 'ล้าน', 'บาท', 'ลด', 'ลง', 'นายกิตติคุณ', 'ธนรัตนพัฒนกิจ', 'นัก', 'วิเคราะห์', 'กอง', 'ทุน', 'บริษัท', 'มอร์นิ่งสตาร์', 'รีเสิร์ซ', 'ประเทศไทย', 'กล่าว', 'ว่า', 'จาก', 'ปัญหา', 'การ', 'ผิด', 'นัด', 'ชำระ', 'หนี้', 'ของ', 'ตรา', 'สาร', 'หนี้', 'ประเภท', 'หรือ', 'ตรา', 'สาร', 'หนี้', 'ระยะ', 'สั้น', 'ที่', 'เสี่ยง', 'สูง', 'ที่', 'ยังคง', 'มี', 'อยู่', 'ส่ง', 'ผล', 'ต่อ', 'ความ', 'เชื่อมั่น', 'ของ', 'ผู้', 'ลง', 'ทุน', 'จึง', 'เป็น', 'ผล', 'ให้', 'ผู้', 'ลง', 'ทุน', 'ตัดสินใจ', 'ไม่', 'ลง', 'ทุน', 'ต่อ', 'ใน', 'กลุ่ม', 'ดัง', 'กล่าว', 'และ', 'ดู', 'เหมือน', 'ยัง', 'ไม่', 'จบ', 'สิ้นดี', 'นอก', 'จาก', 'นี้', 'ยัง', 'ส่ง', 'ผล', 'กระทบ', 'ไป', 'ถึง', 'หลาย', 'บริษัทหลักทรัพย์จัดการกองทุน', 'บลจ.', 'ที่', 'เน้น', 'การ', 'ออก', 'กอง', 'ทุน', 'ดัง', 'กล่าว', 'เป็น', 'พิเศษ', 'ได้', 'รับ', 'ผล', 'กระทบ', 'อย่าง', 'มาก', 'โดย', 'ที่', 'บาง', 'บลจ.', 'ยอด', 'เงิน', 'ภาย', 'ใต้', 'การ', 'บริหาร', 'ลด', 'ลง', 'ไป', 'กว่า', 'โดย', 'ไตรมาส', 'แรก', 'ปี', 'นี้', 'พบ', 'ว่า', 'บล', 'จ.', 'ที่', 'มี', 'เงิน', 'ไหล', 'ออก', 'มาก', 'ที่สุด', 'อันดับ', 'แรก', 'บล', 'จ.', 'โซลาลิส', ',', 'ล้าน', 'บาท', 'รอง', 'ลง', 'มา', 'บล', 'จ.', 'แลนด์แอนด์เฮ้าส์', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'กสิกรไทย', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'ซีไอเอ็มบีพรินซิเพิล', ',', 'ล้าน', 'บาท', 'และ', 'บลจ.ยูโอบี', ',', 'ล้าน', 'บาท', 'สำหรับ', 'เงิน', 'ไหล', 'ออก', 'ส่วน', 'ใหญ่', 'มา', 'จาก', 'กรณี', 'ตั๋ว', 'บีอี', 'ใน', 'ประเทศ', 'ที่', 'มี', 'ปัญหา', 'บลจ.', 'ที่', 'ได้', 'รับ', 'ผล', 'กระทบ', 'เริ่ม', 'ทยอย', 'ปิด', 'กอง', 'ทุน', 'เมื่อ', 'ครบ', 'กำหนด', 'โดย', 'เฉพาะ', 'บล', 'จ.', 'ที่', 'ใช้', 'เป็น', 'กอง', 'ทุน', 'หลัก', 'ใน', 'การ', 'ดำเนิน', 'ธุรกิจ', 'จะ', 'ทำ', 'ให้', 'มูลค่า', 'สินทรัพย์', 'ลด', 'รวดเร็ว', 'และ', 'ที่', 'สำคัญ', 'นัก', 'ลง', 'ทุน', 'เริ่ม', 'กังวล', 'ความ', 'เสี่ยง', 'ระวัง', 'การ', 'ลง', 'ทุน', 'ตรา', 'สาร', 'มากขึ้น', 'ทำ', 'ให้', 'ชะลอ', 'การ', 'ลง', 'ทุน', 'และ', 'ยัง', 'ย้าย', 'เงิน', 'ลง', 'ทุน', 'ไป', 'ยัง', 'สินทรัพย์', 'ประเภท', 'อื่น', 'ที่', 'มี', 'ความ', 'ผันผวน', 'ต่ำ', 'กว่า', 'ดัง', 'นั้น', 'ถ้า', 'บล', 'จ.หาสินทรัพย์', 'อื่น', 'มา', 'ทดแทน', 'ไม่', 'ได้', 'จึง', 'ทำ', 'ให้', 'เกิด', 'ภาวะ', 'เงิน', 'ไหล', 'ออก', 'อย่าง', 'ไร', 'ก็ตาม', 'คาด', 'ว่า', 'สถานการณ์', 'เงิน', 'ไหล', 'ออก', 'จะ', 'เป็น', 'ช่วง', 'สั้น', 'ใน', 'ช่วง', 'รอย', 'ต่อ', 'เท่า', 'นั้น', 'เนื่อง', 'จาก', 'สภาพ', 'ตลาด', 'กอง', 'ทุน', 'รวม', 'ต้อง', 'ออก', 'ผลิตภัณฑ์', 'ที่', 'สนับสนุน', 'การ', 'ลง', 'ทุน', 'ระยะ', 'ยาว', 'และ', 'จะ', 'ช่วย', 'ให้', 'บล', 'จ.', 'นำ', 'เงิน', 'ไป', 'ลง', 'ทุน', 'บริหาร', 'ระยะ', 'ยาว', 'ได้', 'ดี', 'ขึ้น', 'ส่วน', 'บล', 'จ.', 'ที่', 'มี', 'เงิน', 'ไหล', 'เข้า', 'มาก', 'ที่สุด', 'ใน', 'ช่วง', 'ไตรมาส', 'แรก', 'ปี', 'นี้', 'สังเกต', 'ได้', 'ว่า', 'ทั้งหมด', 'เป็น', 'กลุ่ม', 'กอง', 'ทุน', 'ที่', 'มี', 'ความ', 'เสี่ยง', 'ต่ำ', 'ถึง', 'ปานกลาง', 'ทั้งสิ้น', 'ซึ่ง', 'สะท้อน', 'ให้', 'เห็น', 'ว่า', 'ผู้', 'ลง', 'ทุน', 'ยังคง', 'มี', 'ความ', 'กังวล', 'ต่อ', 'อยู่', 'โดย', 'บล', 'จ.', 'ที่', 'มี', 'เงิน', 'ไหล', 'เข้า', 'มาก', 'สุด', 'อันดับ', 'บล', 'จ.', 'ทหารไทย', ',', 'ล้าน', 'บาท', 'รอง', 'ลง', 'มา', 'บล', 'จ.กรุงไทย', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'ธนชาต', ',', 'ล้าน', 'บาท', 'บล', 'จ.', 'กรุงศรี', ',', 'ล้าน', 'บาท', 'และ', 'บล', 'จ.', 'บัวหลวง', ',', 'ล้าน', 'บาท', 'นายกิตติคุณ', 'กล่าว', 'ว่า', 'ไตรมาส', 'แรก', 'มี', 'เงิน', 'ไหล', 'เข้า', 'กองทุนรวมสุทธิเพียง', ',', 'ล้าน', 'บาท', 'ลด', 'ลง', 'จาก', 'ไตรมาสเดียว', 'กัน', 'ปี', 'ก่อน', 'กว่า', 'แต่', 'ภาพ', 'รวม', 'ของ', 'อุตสาหกรรม', 'ก็', 'ยัง', 'โต', 'อยู่', 'ที่', 'นับ', 'จาก', 'สิ้น', 'ปี', 'มูลค่า', 'ทรัพย์สิน', 'สุทธิ', 'อยู่', 'ที่', 'ล้าน', 'ล้าน', 'บาท', 'ประเภท', 'กอง', 'ทุน', 'ที่', 'ได้', 'รับ', 'ความ', 'นิยม', 'คือ', 'กองทุน', 'และ', 'เป็น', 'ผล', 'มา', 'จาก', 'ปัญหา', 'ผิด', 'นัด', 'ชำระ', 'หนี้', 'ของ', 'ตรา', 'สาร', 'หนี้', 'ประเภท', 'ที่', 'ยังคง', 'มี', 'อยู่', 'ไตรมาส', 'แรก', 'ปี', 'นี้', 'กลุ่ม', 'ทั้ง', 'ใน', 'และ', 'ต่าง', 'ประเทศ', 'มี', 'มูลค่า', 'ทรัพย์สิน', 'สุทธิ', 'ลด', 'ลง', 'เหลือ', 'ประมาณ', ',', 'ล้าน', 'บาท', 'จาก', 'ที่', 'เคย', 'สูง', 'สุด', 'ถึง', 'กว่า', ',', 'ล้าน', 'บาท', 'เมื่อ', 'กลาง', 'ปี', 'ที่', 'ผ่าน', 'มา', 'ใจสั่นรัว', 'อีดงอุค', 'กลับ', 'มา', 'มี', 'ทติ้ง', 'ใน', 'รอบ', 'ปี', 'ดีใจ', 'จน', 'ออก', 'นอก', 'หน้า', 'กัน', 'เลย', 'ทีเดียว', 'เมื่อ', 'ยม', 'ทูต', 'ของ', 'ฉันเตรียมแลน', 'ดิ้ง', 'ลง', 'รันเวย์', 'ใน', 'บ้าน', 'เรา', 'เพื่อ', 'มา', 'จัด', 'งาน', 'วัน', 'เสาร์', 'ที่', 'พฤษภาคม', 'นี้', 'ผม', 'เคย', 'ไป', 'ทั้ง', 'ทำ', 'งาน', 'และ', 'ไป', 'เที่ยว', 'ที่', 'ไทย', 'นะ', 'ครับ', 'ถือ', 'ว่า', 'เป็น', 'ประเทศ', 'ที่', 'ไป', 'บ่อย', 'พอสมควร', 'นี่', 'คือ', 'คำ', 'พูด', 'ส่วน', 'หนึ่ง', 'ของ', 'อีดงอุค', 'ที่', 'พูด', 'ถึง', 'ประเทศไทย', 'และ', 'แฟน', 'คลับ', 'ของ', 'เขา', 'หนุ่ม', 'ใหญ่', 'ใน', 'วัย', 'ที่', 'เข้า', 'ใกล้', 'หลักสี่', 'แล้ว', 'แต่', 'กระแส', 'ความ', 'แรง', 'ความ', 'ฮอต', 'ของ', 'หนุ่ม', 'คน', 'นี้', 'ยังคง', 'แรง', 'อย่าง', 'ต่อเนื่อง', 'จาก', 'ผล', 'งาน', 'ล่าสุด', 'กับ', 'บทบาท', 'กริม', 'รีปเปอร์', 'หรือ', 'เรียก', 'สั้น', 'ๆ', 'ว่า', '...ยมทูต', 'นั้น', 'เอง', 'แถม', 'ใน', 'เรื่อง', 'ยัง', 'ถูก', 'ให้', 'จิ้น', 'กับ', 'กงยู', 'นัก', 'แสดง', 'นำ', 'ใน', 'เรื่อง', 'นี้', 'ด้วย', 'นะคะ', 'เมื่อ', 'อีดงอุค', 'ประกาศ', 'เปิด', 'เอเชีย', 'ทัวร์', 'แฟน', 'มี', 'ทติ้ง', 'ก็', 'ทำ', 'ให้', 'มี', 'กระแส', 'ตอบรับ', 'เป็น', 'อย่าง', 'ดี', 'รวม', 'ถึง', 'ใน', 'บ้าน', 'เรา', 'ด้วย', 'นะ', 'จ๊ะ', 'แถม', 'ยม', 'ทูต', 'หนุ่ม', 'คน', 'นี้', 'ยัง', 'ส่ง', 'คลิป', 'มา', 'อ้อน', 'แฟน', 'คลับ', 'กัน', 'ด้วย', 'วัน', 'งาน', 'มา', 'ถึง', 'พูด', 'เลย', 'ว่า', 'มี', 'อะไร', 'เซอร์ไพรส์', 'อีก', 'มากมาย', 'รวม', 'ไป', 'ถึง', 'การ', 'ใกล้ชิด', 'แบบ', 'สุด', 'ๆ', 'อีก', 'ด้วย', 'โดย', 'เฉพาะ', 'สาว', 'ๆ', 'ที่', 'รอ', 'การ', 'กับ', 'หนุ่ม', 'อีดง', 'อุค', 'ทุก', 'ที่', 'นั่ง', 'ด้วย', 'นะ', 'แต่', 'ก่อน', 'จะ', 'ถึง', 'วัน', 'เสาร์', 'ที่', 'พฤษภาคม', 'นี้', 'เรา', 'ไป', 'ดู', 'คลิป', 'กัน', 'ดี', 'กว่า', 'ห้ามพลาดนะคะใครที่รักท่านยมทูต', 'อีดงอุค', 'อย่า', 'ลืม', 'ว่า', 'เรา', 'มี', 'นัด', 'กัน', 'ใน', 'วัน', 'เสาร์', 'ที่', 'พฤษภาคม', 'นี้', 'ณ', 'บีซีซี', 'ฮอลล์', 'เซ็นทรัล', 'พลาซ่า', 'ลาดพร้าว', 'ชั้น', 'จับจอง', 'ซื้อ', 'บัตร', 'ได้', 'ที่', 'ติดตาม', 'รายละเอียด', 'เพิ่มเติม', 'ได้', 'ที่', 'หรือ', '@', '_', 'และ', '@', '_', 'กลต.จ้างที่ปรึกษานอกรื้อก.ม.', 'กลต.จ้างที่ปรึกษานอก', 'รื้อก.ม.', 'หวังช่วยเอกชนลดต้นทุนคาดสรุปต.ค.นี้ก.ล.ต.', 'เดินหน้าปรับปรุงกฎหมายทั้งหมด', 'จ้างที่ปรึกษาต่างประเทศช่วยประเมิน', 'หวังลดต้นทุนภาคธุรกิจ', 'คาดเกณฑ์ไอพีโอใหม่เริ่มใช้ไม่เกิน', 'เดือน', 'ด้านบริษัทขนาดกลาง', 'ร้องเกณฑ์ซีจี', 'โค้ดเพิ่มต้นทุนเพียบนายรพี', 'สุจริตกุล', 'เลขาธิการ', 'สำนักงานคณะกรรมการกำกับหลักทรัพย์และตลาดหลักทรัพย์', 'ก.ล.ต.', 'เปิดเผยว่า', 'สำนักงานก.ล.ต.อยู่ระหว่างการจ้างที่ปรึกษากฎหมายจากต่างประเทศ', 'เพื่อทบทวนกฎเกณฑ์และกฎหมายทั้งหมด', 'โดยคาดว่าจะได้ข้อสรุปในเดือนต.ค.นี้ก.ล.ต.ได้ว่าจ้างที่ปรึกษาทางกฎหมายต่างประเทศเพื่อทบทวนกฎหมายที่ใช้อยู่ปัจจุบัน', 'ซึ่งเป็นไปตามนโยบายของภาครัฐและที่ผ่านมาธนาคารแห่งประเทศไทยได้ดำเนินการไปแล้วในฝั่งของก.ล.ต.คาดว่าจะได้ข้อสรุปในเดือนต.ค.นี้ทั้งนี้การดำเนินตามกฎหมายนั้นถือเป็นต้นทุนหนึ่งของการทำธุรกิจเช่นการขออนุญาตทำธุรกรรมต่างๆ', 'หากดูแล้วไม่จำเป็นหรือเป็นอุปสรรคในการทำธุรกิจก.ล.ต.ก็จะปรับปรุงให้มีประสิทธิภาพและช่วยลดต้นทุนให้ภาคเอกชนกรณีการกำหนดการสัดส่วนจัดสรรหุ้นไอพีโอให้กับผู้มีอุปการคุณไม่เกิน', 'คาดว่าจะสามารถรับฟังความคิดเห็นได้ภายในเดือนหน้า', 'และเมื่อได้รับความเห็นชอบของผู้ที่อยู่ในอุตสาหกรรมเชื่อว่าจะสามารถบังคับใช้ได้ภายใน', 'เดือนข้างหน้า', 'สำหรับวัตถุประสงค์ของก.ล.ต.คือต้องการให้มีการกระจายหุ้นถึงมือนักลงทุนรายบุคคลมากขึ้น', 'ส่วนความคืบหน้าของการแก้ไขพ.ร.บ.หลักทรัพย์', 'แก้ไขเพิ่มเติม', 'ฉบับที่', 'นั้น', 'ปัจจุบันได้เสนอไปยังกระทรวงการคลังแล้ว', 'และอยู่ระหว่างการพิจารณานายสมชัย', 'ไทยสงวนวรกุล', 'ประธานกรรมการบริหาร', 'บริษัท', 'เอส', 'เอ็น', 'ซี', 'ฟอร์เมอร์', 'จำกัด', 'มหาชน', 'เปิดเผยว่า', 'สำหรับเกณฑ์หลักการบริหารกิจการที่ดี', 'ที่กำลังจะบังคับใช้นั้นคาดว่าจะเพิ่มต้นทุนสูงขึ้นเนื่องจากบุคลากรที่ตรงตามหลักเกณฑ์ซีจีโค้ดใหม่ทั้ง', 'ข้อต้องมีความรู้และความสามารถมากขึ้นค่าตอบแทนก็ต้องสูงขึ้นด้วย', 'ทั้งนี้คณะกรรมการจะมีการประชุมเพียง', 'ครั้งต่อปี', 'และไม่สามารถจะดำรงตำแหน่งบริหารบริษัทได้ในเวลาเดียวกันนอกจากนี้ซีจีโค้ดฉบับใหม่กำหนดให้คณะกรรมการ', 'ต้องมีบทบาทกำหนดนโยบายบริษัทจดทะเบียน', 'ซึ่งมองว่าเป็นความเสี่ยง', 'เพราะคณะกรรมการอิสระที่เชิญมาดำรงตำแหน่งนั้น', 'ส่วนใหญ่จะไม่รู้จักวัฒนธรรมของบริษัทหากมาเป็นผู้กำหนดทิศทางอาจก่อให้เกิดปัญหาได้', 'คืบ', 'หน้า', 'ศพ', 'พระ', 'หาย', 'คาด', 'ทำ', 'เป็น', 'ขบวนการ', 'คืบหน้า', 'ศพ', 'หลวงพ่อมหายนต์', 'หาย', 'ปริศนา', 'คาด', 'ทำ', 'เป็น', 'ขบวนการ', 'ไม่', 'ต่ำ', 'กว่า', 'คน', 'จาก', 'กรณี', 'ความ', 'โกลาหล', 'ที่', 'เกิด', 'ขึ้น', 'ยัง', 'วัดศิริมงคล', 'บ้านหนองหญ้าปล้อง', 'อ.พังโคน', 'จ.สกลนคร', 'ซึ่ง', 'กำลัง', 'จะ', 'มี', 'พิธี', 'พระราชทาน', 'เพลิง', 'ศพ', 'พระครูโสภณธรรมาภิวัฒน์', 'หรือ', 'หลวงพ่อมหายนต์', 'อดีต', 'ที่', 'ปรึกษา', 'เจ้า', 'คณะ', 'อำเภอพังโคน', 'อดีต', 'เจ้า', 'อาวาส', 'วัดศิริมงคล', 'ที่', 'มรณภาพ', 'ด้วย', 'โรค', 'ชรา', 'เมื่อ', 'วัน', 'ที่', 'ม.ค.', 'หลัง', 'จาก', 'ตั้ง', 'ศพ', 'บำเพ็ญ', 'กุศล', 'เรื่อย', 'มา', 'โดย', 'ใน', 'เวลา', 'น.', 'วัน', 'ที่', 'เม.ย.', 'จะ', 'มี', 'พิธี', 'ขอ', 'ขมา', 'สรีระสังขาร', 'และ', 'เคลื่อน', 'ขึ้น', 'สู่', 'เมรุ', 'ชั่วคราว', 'แต่', 'ปรากฏ', 'ว่า', 'เมื่อ', 'เปิด', 'โลง', 'เย็น', 'ที่', 'บรรจุ', 'ศพ', 'ของ', 'พระครูโสภณธรรมาภิวัฒน์', 'กลับ', 'พบ', 'แต่', 'เบาะ', 'นอน', 'และ', 'จีวร', 'เปล่า', 'ล่าสุด', 'พระปลัด', 'แดน', 'สกล', 'ปภาโส', 'จ้า', 'อาวาส', 'วัดตาลสุม', 'บ.ตาล', 'เลียน', 'ต.ช้างมิ่ง', 'อ.พรรณนานิคม', 'จ.สกลนคร', 'และ', 'เป็น', 'เครือ', 'ญาติ', 'พระครูโสภณธรรมาภิวัฒน์', 'กล่าว', 'ว่า', 'กรณี', 'ศพ', 'พระครูหาย', 'ไป', 'จาก', 'โลง', 'เย็น', 'เชื่อ', 'ว่า', 'ทำ', 'เป็น', 'ขบวนการ', 'มี', 'ผู้', 'ลงมือ', 'ไม่', 'ต่ำ', 'กว่า', 'คน', 'เพราะ', 'การ', 'ย้าย', 'ศพ', 'ออก', 'มา', 'ต้อง', 'เปิด', 'ท้าย', 'โลง', 'ซึ่ง', 'ได้', 'วาง', 'โต๊ะ', 'และ', 'ตู้', 'บริจาค', 'ปิด', 'ไว้', 'ก่อน', 'ที่', 'คน', 'ร้าย', 'จะ', 'เปิด', 'ท้าย', 'โลง', 'ศพ', 'ออก', 'มา', 'และ', 'ร่าง', 'ของ', 'พระครู', 'ที่', 'แช่', 'เย็น', 'ไว้', 'ก็', 'เป็น', 'น้ำ', 'แข็ง', 'จะ', 'มี', 'น้ำหนัก', 'มาก', 'ต้อง', 'ยก', 'หลาย', 'คน', 'กลุ่ม', 'คน', 'ร้าย', 'ยัง', 'วางแผน', 'ด้วย', 'การ', 'นำ', 'หมอน', 'มา', 'วาง', 'เรียงคล้าย', 'กับ', 'มี', 'คน', 'นอน', 'โดย', 'เฉพาะ', 'ช่วง', 'กลาง', 'ท้อง', 'มี', 'การ', 'นำ', 'หมอน', 'วาง', 'ให้', 'นูน', 'ขึ้น', 'ลักษณะ', 'ของ', 'คน', 'มี', 'พุง', 'ตรง', 'กับ', 'รูปร่าง', 'ของ', 'พระครูโสภณ', 'ก่อน', 'จะ', 'ดัน', 'ที่', 'นอน', 'กลับ', 'เข้า', 'ไป', 'แทน', 'เมื่อ', 'ญาติโยม', 'ที่', 'มา', 'ฟัง', 'สวด', 'อภิธรรม', 'และ', 'ทำ', 'บุญ', 'เมื่อ', 'ไป', 'ส่อง', 'ที่', 'กระจก', 'ด้าน', 'ใน', 'โลง', 'ศพ', 'จึง', 'ยัง', 'เห็น', 'คล้าย', 'ร่างหลวง', 'พ่อ', 'มหายนต์', 'นอน', 'สงบ', 'นิ่ง', 'อยู่', 'พระปลัดแดนสกล', 'กล่าววัน', 'อันตราย', 'มาตรการ', 'รัฐ', 'ได้', 'ผล', 'จริง', 'หรือ', 'วัน', 'อันตราย', 'จำนวน', 'ครั้ง', 'เพิ่ม', 'ยอด', 'ตาย', 'ลด', 'มาตรการ', 'รัฐ', 'ได้', 'ผล', '?', 'สิ้นสุด', 'ไป', 'แล้ว', 'สำหรับ', 'มาตรการ', 'ดูแล', 'และ', 'ป้องกัน', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'วัน', 'อันตราย', 'ช่วง', 'เทศกาล', 'สงกรานต์', 'ปี', 'ตั้งแต่', 'วัน', 'ที่', 'เมษายน', 'ตาม', 'แนว', 'คิด', 'ขับ', 'รถ', 'มี', 'น้ำใจ', 'รักษา', 'วินัย', 'จราจร', 'โดย', 'ศูนย์อำนวยการความปลอดภัยทางถนน', 'ศปถ.', 'กรมป้องกันและบรรเทาสาธารณภัย', 'กระทรวงมหาดไทย', 'ทำ', 'หน้าที่', 'องค์กร', 'กลาง', 'ของ', 'ภาค', 'รัฐ', 'สั่งการ', 'ควบคุม', 'และ', 'ขับเคลื่อน', 'แผน', 'ลด', 'ยอด', 'เจ็บ', 'ตาย', 'ช่วง', 'เทศกาล', 'ปี', 'ใหม่', 'ไป', 'ถึง', 'เทศกาล', 'สงกรานต์', 'ทุก', 'ปี', 'จาก', 'การ', 'รวบรวม', 'สถิติ', 'ใน', 'ปี', 'นี้', 'สรุป', 'ออก', 'มา', 'ได้', 'ว่า', 'ตลอด', 'วัน', 'มี', 'อุบัติเหตุ', ',', 'ครั้ง', 'มี', 'ผู้', 'บาดเจ็บ', ',', 'คน', 'และ', 'มี', 'ผู้', 'เสีย', 'ชีวิต', 'ราย', 'เมื่อ', 'เปรียบเทียบ', 'กับ', 'เทศกาล', 'สงกรานต์', 'มี', 'อุบัติเหตุ', ',', 'ครั้ง', 'ผู้', 'บาดเจ็บ', ',', 'คน', 'ผู้', 'เสีย', 'ชีวิต', 'ราย', 'จะ', 'เห็น', 'ได้', 'ว่า', 'ตัว', 'เลข', 'ผู้', 'เสีย', 'ชีวิต', 'ลด', 'ลง', 'ราย', 'ผู้', 'บาดเจ็บ', 'เพิ่ม', 'ขึ้น', 'ราย', 'ขณะ', 'ที่', 'อุบัติเหตุ', 'เพิ่ม', 'ขึ้น', 'ครั้ง', 'เช่น', 'กัน', 'โดย', 'สาเหตุ', 'ที่', 'ทำ', 'ให้', 'เกิด', 'อุบัติเหตุ', 'สูง', 'สุด', 'ยังคง', 'เป็น', 'เมา', 'แล้ว', 'ขับ', 'ร้อย', 'ละ', 'ขับ', 'รถ', 'เร็ว', 'ร้อย', 'ละ', 'ส่วน', 'ยานพาหนะ', 'ที่', 'เกิด', 'อุบัติเหตุ', 'สูง', 'สุด', 'รถ', 'จักรยาน', 'ยนต์', 'มาก', 'ถึง', 'ร้อย', 'ละ', 'และ', 'รถ', 'ปิกอัพ', 'ร้อย', 'ละ', 'ที่', 'สำคัญ', 'พฤติกรรม', 'เสี่ยง', 'ที่', 'ทำ', 'ให้', 'เสีย', 'ชีวิต', 'และ', 'บาดเจ็บ', 'อันดับ', 'แรก', 'ยัง', 'ป็น', 'สาเหตุ', 'เดิม', 'ๆ', 'ไม่', 'สวม', 'หมวก', 'นิรภัย', 'เมา', 'แล้ว', 'ขับ', 'ขับ', 'รถ', 'เร็ว', 'ตัดหน้า', 'กระชั้นชิด', 'และ', 'รถ', 'จักรยาน', 'ยนต์', 'ไม่', 'ปลอด', 'ภัย', 'ส่วน', 'จังหวัด', 'ที่', 'เกิด', 'อุบัติเหตุ', 'สะสม', 'สูง', 'สุด', 'ได้แก่', 'อุดรธานี', 'ครั้ง', 'จังหวัด', 'ที่', 'มี', 'ผู้', 'เสีย', 'ชีวิต', 'สะสม', 'สูง', 'สุด', 'ได้แก่', 'นครราชสีมา', 'ราย', 'และ', 'จังหวัด', 'ที่', 'มี', 'ผู้', 'บาดเจ็บ', 'สะสม', 'สูง', 'สุด', 'ได้แก่', 'อุดรธานี', 'คน', 'ขณะ', 'ที่', 'จังหวัด', 'ที่', 'ไม่', 'มี', 'ผู้', 'เสีย', 'ชีวิต', 'จังหวัด', 'ได้แก่', 'กระบี่', 'นราธิวาส', 'แม่ฮ่องสอน', 'และสมุทรสงคราม', 'จังหวัด', 'ที่', 'ไม่', 'มี', 'ผู้', 'บาดเจ็บ', 'จังหวัด', 'ได้แก่', 'ชัยภูมิ', 'เมื่อ', 'มอง', 'จาก', 'ปัจจัย', 'สำคัญ', 'ช่วย', 'ลด', 'ยอด', 'ผู้', 'เสีย', 'ชีวิต', 'ใน', 'ปี', 'นี้', 'ส่วน', 'หนึ่ง', 'เกิด', 'จาก', 'มาตรการ', 'เข้มงวด', 'การ', 'เรียก', 'ตรวจ', 'ยานพาหนะ', 'ได้', 'มาก', 'ถึง', ',', ',', 'คัน', 'มี', 'ผู้', 'ถูก', 'ดำเนิน', 'คดี', 'รวม', ',', 'ราย', 'อันดับ', 'แรก', 'แบ่ง', 'เป็น', 'ความ', 'ผิด', 'ฐาน', 'ไม่', 'สวม', 'หมวก', 'นิรภัย', 'มาก', 'ที่สุด', ',', 'ราย', 'รอง', 'ลง', 'มา', 'ไม่', 'มี', 'ใบ', 'ขับขี่', ',', 'ราย', 'ขณะ', 'ที่', 'ถนน', 'สาย', 'รอง', 'ซึ่ง', 'เป็น', 'อีก', 'หนึ่ง', 'พื้นที่', 'เสี่ยง', 'มี', 'จัดตั้ง', 'ด่าน', 'ชุมชน', ',', 'ด่าน', 'มี', 'เจ้าหน้าที่', 'ปฏิบัติ', 'งาน', 'กว่า', ',', 'คน', 'ศปถ.', 'เชื่อ', 'ว่า', 'แผนกวดขัน', 'วินัย', 'จราจร', 'อย่าง', 'จริงจัง', 'เป็น', 'ส่วน', 'หนึ่ง', 'ที่', 'บีบ', 'ให้', 'กราฟ', 'ผู้', 'เสีย', 'เสีย', 'ชีวิต', 'ใน', 'ปี', 'นี้', 'ลด', 'ลง', 'สถิติ', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'ใน', 'ช่วง', 'เทศกาล', 'สงกรานต์', 'มี', 'จำนวน', 'ครั้ง', 'ใน', 'การ', 'เกิด', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'เพิ่ม', 'ขึ้น', 'แต่', 'ตัว', 'เลข', 'จำนวน', 'ผู้', 'เสีย', 'ชีวิต', 'ลด', 'ลง', 'กว่า', 'ปี', 'ที่', 'ผ่าน', 'มา', 'ร้อย', 'ละ', 'ซึ่ง', 'จำนวน', 'ครั้ง', 'ที่', 'เพิ่ม', 'ขึ้น', 'ศปถ.', 'วิเคราะห์', 'ว่า', 'เนื่อง', 'จาก', 'มี', 'การ', 'ใช้', 'รถ', 'ใช้', 'ถนน', 'ใน', 'การ', 'เดินทาง', 'เพิ่ม', 'มาก', 'ขึ้น', 'ขณะ', 'ที่', 'จำนวน', 'ผู้', 'เสีย', 'ชีวิต', 'ลด', 'ลง', 'โดย', 'เฉพาะ', 'อัตรา', 'การ', 'เสีย', 'ชีวิต', 'ที่', 'จุด', 'เกิด', 'เหตุ', 'ลด', 'ลง', 'เหลือ', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'ผ่าน', 'มา', 'อยู่', 'ที่', 'ร้อย', 'ละ', 'แสดง', 'ให้', 'เห็น', 'ว่า', 'ดัชนี', 'ความ', 'รุนแรง', 'ของ', 'อุบัติเหตุ', 'ลด', 'ลง', 'อีก', 'ทั้ง', 'อุบัติเหตุ', 'จาก', 'รถ', 'กระบะ', 'ยัง', 'ลด', 'ลง', 'เหลือ', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'ผ่าน', 'ร้อย', 'ละ', 'น่า', 'จะ', 'มา', 'จาก', 'ปัจจัย', 'สำคัญ', 'จาก', 'ความ', 'ร่วมมือ', 'ของ', 'ประชาชน', 'โดย', 'เฉพาะ', 'การ', 'ใช้', 'อุปกรณ์', 'นิรภัย', 'และ', 'การ', 'ห้าม', 'บรรทุก', 'ผู้', 'โดยสาร', 'ท้าย', 'กระบะ', 'เกิน', 'คน', 'ตาม', 'มาตรการ', 'พิเศษ', 'จาก', 'คสช.', 'ทำ', 'ให้', 'ประชาชน', 'รู้', 'สึก', 'เกรง', 'กลัว', 'ต่อ', 'ความ', 'ผิด', 'ใน', 'มาตรการ', 'เข้มงวด', 'ของ', 'เจ้าหน้าที่', 'รัฐ', 'ที่', 'ออก', 'มา', 'ครั้ง', 'นี้', 'แต่', 'ปัจจัย', 'ทั้งหมด', 'ยังคง', 'พ่ายแพ้', 'ให้', 'กับ', 'พฤติกรรม', 'เมา', 'แล้ว', 'ขับ', 'และ', 'ขับ', 'รถ', 'เร็ว', 'พุ่ง', 'เป้า', 'ไป', 'ที่', 'ความ', 'คะนอง', 'จาก', 'การ', 'ขับขี่', 'รถ', 'จักรยาน', 'ยนต์', 'และ', 'รถ', 'ที่', 'บรรทุก', 'คน', 'โดยสาร', 'ท้าย', 'กระบะ', 'จาก', 'สาเหตุ', 'ที่', 'ทำ', 'ให้', 'เสีย', 'ชีวิต', 'สูง', 'สุด', 'อันดับ', 'แรก', 'ขับ', 'รถ', 'เร็ว', 'ราย', 'เมา', 'แล้ว', 'ขับ', 'ราย', 'และ', 'ทัศนวิสัย', 'ไม่', 'ดี', 'ราย', 'และ', 'สาเหตุ', 'อื่น', 'ๆ', 'ราย', 'รวม', 'ผู้', 'เสีย', 'ชีวิต', 'ราย', 'สำหรับ', 'มาตรการ', 'ลง', 'โทษ', 'ผู้', 'กระทำ', 'ผิด', 'ขับ', 'รถ', 'ขณะ', 'เมา', 'สุรา', 'ใน', 'เบื้อง', 'ต้น', 'ภาค', 'รัฐ', 'จะ', 'ให้', 'ทำ', 'งาน', 'บริการ', 'สังคม', 'ใน', 'สถาน', 'พยาบาล', 'ตั้งแต่', 'ห้อง', 'ฉุกเฉิน', 'หนัก', 'สุด', 'ไป', 'ที่', 'ห้อง', 'ดับ', 'จิต', 'เพื่อ', 'กระตุ้น', 'จิต', 'สำนึก', 'ผู้', 'กระทำ', 'ผิด', 'ให้', 'รับ', 'รู้', 'ถึง', 'ความ', 'สูญ', 'เสีย', 'และ', 'ผล', 'กระทบ', 'ที่', 'เกิด', 'จาก', 'อุบัติเหตุ', 'ทาง', 'ถนน', 'โดย', 'ขณะ', 'นี้', 'มี', 'ผู้', 'ถูก', 'คุม', 'ประพฤติ', 'มา', 'ทำ', 'งาน', 'บริการ', 'สังคม', 'ใน', 'โรง', 'พยาบาล', ',', 'ราย', 'โดย', 'ล่าสุดอ', 'มี', 'ผู้', 'ถูก', 'คุม', 'ประพฤติ', 'มา', 'ทำ', 'งาน', 'บริการ', 'สังคม', 'ที่', 'โรงพยาบาลนพรัตนราชธานี', 'จำนวน', 'ราย', 'โดย', 'เจ้าหน้าที่', 'จะ', 'ให้', 'ทำ', 'ความ', 'สะอาด', 'อ่างล้าง', 'ศพ', 'และ', 'ตู้', 'เย็น', 'เก็บ', 'ศพ', 'แต่', 'ไม่', 'อนุญาต', 'ให้', 'แตะต้อง', 'ศพ', 'ซึ่ง', 'มาตรการ', 'นี้', 'ทำ', 'ให้', 'การ', 'กระทำ', 'ผิด', 'ซ้ำ', 'ลด', 'ลง', 'เหลือ', 'เพียง', 'ร้อย', 'ละ', 'นายกอบชัย', 'บุญอรณะ', 'รอง', 'อธิบดี', 'กรมป้องกันและบรรเทาสาธารณภัย', 'ระบุ', 'ว่า', 'ใน', 'ปี', 'นี้', 'พบ', 'ว่า', 'มี', 'พฤติกรรม', 'เมา', 'แล้ว', 'ขับ', 'เพิ่ม', 'ขึ้น', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'แล้ว', 'ร้อย', 'ละ', 'ส่วน', 'พฤติกรรมการ', 'ขับ', 'รถ', 'เร็ว', 'ลด', 'ลง', 'ร้อย', 'ละ', 'จาก', 'ปี', 'ที่', 'แล้ว', 'ร้อน', 'ละ', 'แต่', 'จาก', 'การ', 'วิเคราะห์', 'ตัว', 'เลข', 'ผู้', 'เสีย', 'ชีวิต', 'ใน', 'ปี', 'นี้', 'ลด', 'ลง', 'แต่']\n"
     ]
    }
   ],
   "source": [
    "print('words = ', words[1:2000]);"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Most common words (+UNK) [['UNK', 132064], ('ที่', 67531), ('การ', 56379), ('ใน', 42697), ('และ', 37581), ('มี', 35661), ('ได้', 33724), ('เป็น', 29314), ('ให้', 28738), ('ว่า', 28327)]\n",
      "Sample data [62, 47, 3000, 1992, 0, 62, 47, 4743, 61, 205] ['เงิน', 'ออก', 'บล', 'จ.', 'UNK', 'เงิน', 'ออก', 'บลจ.', 'มาก', 'สุด']\n"
     ]
    }
   ],
   "source": [
    "# Step 2: Build the dictionary and replace rare words with UNK token.\n",
    "vocabulary_size = 10000\n",
    "\n",
    "def build_dataset(words, vocabulary_size):\n",
    "  count = [['UNK', -1]]\n",
    "  count.extend(collections.Counter(words).most_common(vocabulary_size - 1))\n",
    "  dictionary = dict()\n",
    "  for word, _ in count:\n",
    "    dictionary[word] = len(dictionary)\n",
    "  data = list()\n",
    "  unk_count = 0\n",
    "  for word in words:\n",
    "    if word in dictionary:\n",
    "      index = dictionary[word]\n",
    "    else:\n",
    "      index = 0  # dictionary['UNK']\n",
    "      unk_count += 1\n",
    "    data.append(index)\n",
    "  count[0][1] = unk_count\n",
    "  reverse_dictionary = dict(zip(dictionary.values(), dictionary.keys()))\n",
    "  return data, count, dictionary, reverse_dictionary\n",
    "\n",
    "data, count, dictionary, reverse_dictionary = build_dataset(words, vocabulary_size)\n",
    "del words  # Hint to reduce memory.\n",
    "print('Most common words (+UNK)', count[:10])\n",
    "print('Sample data', data[:10], [reverse_dictionary[i] for i in data[:10]])\n",
    "\n",
    "data_index = 0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "47 ออก -> 62 เงิน\n",
      "47 ออก -> 3000 บล\n",
      "3000 บล -> 47 ออก\n",
      "3000 บล -> 1992 จ.\n",
      "1992 จ. -> 3000 บล\n",
      "1992 จ. -> 0 UNK\n",
      "0 UNK -> 1992 จ.\n",
      "0 UNK -> 62 เงิน\n"
     ]
    }
   ],
   "source": [
    "# Step 3: Function to generate a training batch for the skip-gram model.\n",
    "def generate_batch(batch_size, num_skips, skip_window):\n",
    "  global data_index\n",
    "  assert batch_size % num_skips == 0\n",
    "  assert num_skips <= 2 * skip_window\n",
    "  batch = np.ndarray(shape=(batch_size), dtype=np.int32)\n",
    "  labels = np.ndarray(shape=(batch_size, 1), dtype=np.int32)\n",
    "  span = 2 * skip_window + 1  # [ skip_window target skip_window ]\n",
    "  buffer = collections.deque(maxlen=span)\n",
    "  for _ in range(span):\n",
    "    buffer.append(data[data_index])\n",
    "    data_index = (data_index + 1) % len(data)\n",
    "  for i in range(batch_size // num_skips):\n",
    "    target = skip_window  # target label at the center of the buffer\n",
    "    targets_to_avoid = [skip_window]\n",
    "    for j in range(num_skips):\n",
    "      while target in targets_to_avoid:\n",
    "        target = random.randint(0, span - 1)\n",
    "      targets_to_avoid.append(target)\n",
    "      batch[i * num_skips + j] = buffer[skip_window]\n",
    "      labels[i * num_skips + j, 0] = buffer[target]\n",
    "    buffer.append(data[data_index])\n",
    "    data_index = (data_index + 1) % len(data)\n",
    "  # Backtrack a little bit to avoid skipping words in the end of a batch\n",
    "  data_index = (data_index + len(data) - span) % len(data)\n",
    "  return batch, labels\n",
    "\n",
    "batch, labels = generate_batch(batch_size=8, num_skips=2, skip_window=1)\n",
    "for i in range(8):\n",
    "  print(batch[i], reverse_dictionary[batch[i]],\n",
    "        '->', labels[i, 0], reverse_dictionary[labels[i, 0]])"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Note to Self: Try to run previous command again"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "embeddings <tf.Variable 'Variable:0' shape=(10000, 128) dtype=float32_ref>\n",
      "embed Tensor(\"embedding_lookup:0\", shape=(128, 128), dtype=float32, device=/device:CPU:0)\n",
      "nce_weights <tf.Variable 'Variable_1:0' shape=(10000, 128) dtype=float32_ref>\n",
      "nce_biases <tf.Variable 'Variable_2:0' shape=(10000,) dtype=float32_ref>\n"
     ]
    }
   ],
   "source": [
    "# Step 4: Build and train a skip-gram model.\n",
    "\n",
    "batch_size = 128\n",
    "embedding_size = 128  # Dimension of the embedding vector.\n",
    "skip_window = 1       # How many words to consider left and right.\n",
    "num_skips = 2         # How many times to reuse an input to generate a label.\n",
    "\n",
    "# We pick a random validation set to sample nearest neighbors. Here we limit the\n",
    "# validation samples to the words that have a low numeric ID, which by\n",
    "# construction are also the most frequent.\n",
    "valid_size = 16     # Random set of words to evaluate similarity on.\n",
    "valid_window = 100  # Only pick dev samples in the head of the distribution.\n",
    "valid_examples = np.random.choice(valid_window, valid_size, replace=False)\n",
    "num_sampled = 64    # Number of negative examples to sample.\n",
    "\n",
    "graph = tf.Graph()\n",
    "\n",
    "with graph.as_default():\n",
    "\n",
    "  # Input data.\n",
    "  train_inputs = tf.placeholder(tf.int32, shape=[batch_size])\n",
    "  train_labels = tf.placeholder(tf.int32, shape=[batch_size, 1])\n",
    "  valid_dataset = tf.constant(valid_examples, dtype=tf.int32)\n",
    "\n",
    "  # Ops and variables pinned to the CPU because of missing GPU implementation\n",
    "  with tf.device('/cpu:0'):\n",
    "    # Look up embeddings for inputs.\n",
    "    embeddings = tf.Variable(\n",
    "        tf.random_uniform([vocabulary_size, embedding_size], -1.0, 1.0))\n",
    "    embed = tf.nn.embedding_lookup(embeddings, train_inputs)\n",
    "    print('embeddings', embeddings);\n",
    "    print('embed', embed);\n",
    "    \n",
    "    # Construct the variables for the NCE loss\n",
    "    nce_weights = tf.Variable(\n",
    "        tf.truncated_normal([vocabulary_size, embedding_size],\n",
    "                            stddev=1.0 / math.sqrt(embedding_size)))\n",
    "    nce_biases = tf.Variable(tf.zeros([vocabulary_size]))\n",
    "    print('nce_weights', nce_weights);\n",
    "    print('nce_biases', nce_biases);\n",
    "\n",
    "  # Compute the average NCE loss for the batch.\n",
    "  # tf.nce_loss automatically draws a new sample of the negative labels each\n",
    "  # time we evaluate the loss.\n",
    "  loss = tf.reduce_mean(\n",
    "      tf.nn.nce_loss(weights=nce_weights,\n",
    "                     biases=nce_biases,\n",
    "                     labels=train_labels,\n",
    "                     inputs=embed,\n",
    "                     num_sampled=num_sampled,\n",
    "                     num_classes=vocabulary_size))\n",
    "\n",
    "  # Construct the SGD optimizer using a learning rate of 1.0.\n",
    "  optimizer = tf.train.GradientDescentOptimizer(1.0).minimize(loss)\n",
    "\n",
    "  # Compute the cosine similarity between minibatch examples and all embeddings.\n",
    "  norm = tf.sqrt(tf.reduce_sum(tf.square(embeddings), 1, keep_dims=True))\n",
    "  normalized_embeddings = embeddings / norm\n",
    "  valid_embeddings = tf.nn.embedding_lookup(\n",
    "      normalized_embeddings, valid_dataset)\n",
    "  similarity = tf.matmul(\n",
    "      valid_embeddings, normalized_embeddings, transpose_b=True)\n",
    "\n",
    "  # Add variable initializer.\n",
    "  init = tf.global_variables_initializer()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Initialized\n",
      "Average loss at step  0 :  225.649459839\n",
      "Nearest to ผ่าน: ด.ช., สงวน, จ่า, สินทรัพย์, การงาน, เมืองเชียงใหม่, พล.อ.อนันตพร, หมายเลขทะเบียน,\n",
      "Nearest to ๆ: นางแดง, ในเดือนมี.ค., พิธีกร, เป็นอยู่, รีเทนเนอร์, ถา, หาม, หมอวรงค์,\n",
      "Nearest to มาก: แม่น้ำเมย, ท็อต, พระธาตุศรีสองรัก, ผสมผสาน, พันธมิตร, ภิรมย์ภักดี, ทรัสต์, ดูแลรักษา,\n",
      "Nearest to เพราะ: จ.กาญจนบุรี, ดาวรุ่ง, ซื้อเล่นรีบาวด์, เบื่อหน่าย, สุขุมวิท, สภาคองเกรส, โรแมนติก, อิ่ม,\n",
      "Nearest to เมื่อ: ผสาน, จตุจักร, บาห์เรน, อู, เท่าที่, ทัศนคติ, บรรษัท, ตลอดจน,\n",
      "Nearest to ที่: เฉพาะหน้า, บก.ปอศ., กกล.รส., ประเทศมากขึ้น, ไฟแนนซ์เชียล, องค์การ, สหราชอาณาจักร, ออสเตรเลียน,\n",
      "Nearest to ทำ: อาจารย์, พระอุโบสถ, แม่ชี, องค์กร, พวกพ้อง, ไฮโล, ทำนอง, จ.สตูล,\n",
      "Nearest to กล่าว: วิลเลียมส์, ต่อว่า, ยุง, ปลอดทอง, ในหลวง, ผิด, ผัวเมีย, และอีก,\n",
      "Nearest to เรา: สักขีพยาน, บบ, ฝีมือ, เปื่อย, แทรกซ้อน, เมื่อวันที่, แอสซิสต์, โรงพยาบาลตำรวจ,\n",
      "Nearest to และ: กรุงปารีส, บริจาค, ตราบ, ประจำปี, ร่ำรวย, จ., ลุ่, เที่ยวแห่งประเทศไทย,\n",
      "Nearest to แต่: จ.อ่างทอง, โคปปา, เป่า, สโมสร, เผา, ตรงไปตรงมา, อาณาจักร, วิ่ง,\n",
      "Nearest to รับ: ฐานราก, ข่า, กองทุนไทยแลนด์ฟิวเจอร์ฟันด์, ผลงาน, ไถ่ถอน, เน่า, โบ้ย, ศปก.,\n",
      "Nearest to กว่า: นะจ๊ะ, มดลูก, ปลุก, ดาร์บี, สกุล, กองทัพอากาศ, แอลพีจี, เงิน,\n",
      "Nearest to ลง: เวหา, เต็มที่, ฟิล, ทอดตลาด, ร่ำไห้, นปช., สำนักงานตำรวจแห่งชาติ, ซีดาน,\n",
      "Nearest to ราคา: นายมงคล, ก.ค., สุนทรพจน์, บีบีซี, ดักฟัง, บ้านเมือง, สภ.หาดใหญ่, แอร์พอร์ต,\n",
      "Nearest to ส่วน: ดวง, พระกรุณา, ชั้น, ถึ, ประสาท, มอเตอร์ส, พล.อ.ไพบูลย์, สื่อ,\n",
      "Average loss at step  2000 :  39.8895173366\n",
      "Average loss at step  4000 :  8.57241284299\n",
      "Average loss at step  6000 :  5.97031266069\n",
      "Average loss at step  8000 :  5.31582504797\n",
      "Average loss at step  10000 :  5.0191308924\n",
      "Nearest to ผ่าน: เลขา, พันตำรวจเอก, อสุจิ, สงวน, แพท, สวอนซี, พระเครื่อง, UNK,\n",
      "Nearest to ๆ: เป็นอยู่, พิธีกร, เนื้อ, นางแดง, รีเทนเนอร์, ถาด, ฝ่าย, จันทนลาช,\n",
      "Nearest to มาก: ผสมผสาน, พันธมิตร, ดูแลรักษา, เทียม, ท็อต, แข่ง, หลักสูตรปรับปรุง, พวก,\n",
      "Nearest to เพราะ: ซื้อเล่นรีบาวด์, ดาวรุ่ง, และ, เบื่อหน่าย, สุขุมวิท, หรือ, ยางพารา, ข้าวโพด,\n",
      "Nearest to เมื่อ: นี้, สภ.คลองหลวง, พันตำรวจโท, UNK, จตุจักร, อู, กระโชก, หลักสูตรปรับปรุง,\n",
      "Nearest to ที่: และ, ร้อยละ, หลักสูตรปรับปรุง, UNK, นี้, องค์การ, สภ.คลองหลวง, โดย,\n",
      "Nearest to ทำ: พระเครื่อง, มี, อิเกีย, หลักสูตรปรับปรุง, พระอุโบสถ, สหกรณ์ออมทรัพย์, สนอง, ขยับ,\n",
      "Nearest to กล่าว: UNK, หมอ, ในหลวง, ยาบ้า, นวัตกรรม, ก็องเต้, นายที, แน่ใจ,\n",
      "Nearest to เรา: ฝีมือ, หลักสูตรปรับปรุง, สงสัย, UNK, จนท., หลักสูตรใหม่, เอ็นพีแอล, เลาหกุล,\n",
      "Nearest to และ: ของ, UNK, ที่, หลักสูตรปรับปรุง, หรือ, ซึ่ง, โดย, ร้อยละ,\n",
      "Nearest to แต่: และ, จ.อ่างทอง, สโมสร, กกอ., ว่า, ขบวนการ, โควต้า, ผลไม้,\n",
      "Nearest to รับ: ต.ค., มหาวิทยาลัยนครพนม, หลักสูตรปรับปรุง, ตกใจ, อาคาร, สว., โปรด, ผลงาน,\n",
      "Nearest to กว่า: มดลูก, ร้อยละ, ประธานาธิบดีโดนัลด์, นะจ๊ะ, สกุล, พระเครื่อง, แท้ง, ดาร์บี,\n",
      "Nearest to ลง: เต็มที่, ลูกน้อย, โลง, งดงาม, @, แอชลีย์, กรกฎาคม, แนวโน้ม,\n",
      "Nearest to ราคา: ก.ค., บ้านเมือง, สะดวก, เหตุผล, สภ.หาดใหญ่, สถานีตำรวจภูธรพรานกระต่าย, โบราณ, วิลเลี่ยน,\n",
      "Nearest to ส่วน: ดวง, ชั้น, หลักสูตรปรับปรุง, มอเตอร์ส, พระราชวัง, ปิโตรเคมี, บอมบ์, ไดค์,\n",
      "Average loss at step  12000 :  4.79687432635\n",
      "Average loss at step  14000 :  4.81081808674\n",
      "Average loss at step  16000 :  4.5601409837\n",
      "Average loss at step  18000 :  5.8270826596\n",
      "Average loss at step  20000 :  4.54798966575\n",
      "Nearest to ผ่าน: เข้า, เลขา, สวอนซี, อสุจิ, พันตำรวจเอก, ชั่ง, แพท, รีด,\n",
      "Nearest to ๆ: เป็นอยู่, เนื้อ, พิธีกร, นางแดง, ถาด, รีเทนเนอร์, จันทนลาช, ฝ่าย,\n",
      "Nearest to มาก: พระธาตุศรีสองรัก, ผสมผสาน, สูง, ดูแลรักษา, เทียม, พันธมิตร, แม่น้ำเมย, บังคับการ,\n",
      "Nearest to เพราะ: หรือ, และ, ซึ่ง, ซื้อเล่นรีบาวด์, อย่าง, แต่, ยางพารา, ดาวรุ่ง,\n",
      "Nearest to เมื่อ: นี้, อู, สภ.คลองหลวง, พันตำรวจโท, จตุจักร, ตลอด, UNK, หลักสูตรปรับปรุง,\n",
      "Nearest to ที่: และ, องศาเซลเซียส, ซึ่ง, ร้อยละ, UNK, หลักสูตรปรับปรุง, นี้, โยฮัน,\n",
      "Nearest to ทำ: หลักสูตรปรับปรุง, พระเครื่อง, เฉียบพลัน, UNK, มี, พระอุโบสถ, ทาทา, พันตำรวจเอก,\n",
      "Nearest to กล่าว: ในหลวง, ลอยลำ, ก็องเต้, พระบรม, แน่ใจ, เกล็ด, นวัตกรรม, อ.อรัญประเทศ,\n",
      "Nearest to เรา: ฝีมือ, สงสัย, จะ, เขา, หลักสูตรปรับปรุง, เริ่ม, หลักสูตรใหม่, ไอร่า,\n",
      "Nearest to และ: ซึ่ง, โดย, หรือ, ของ, ที่, หลักสูตรปรับปรุง, หรือราว, เพื่อ,\n",
      "Nearest to แต่: และ, ซึ่ง, ว่า, องศาเซลเซียส, ทาทา, หรือ, เพราะ, จ.อ่างทอง,\n",
      "Nearest to รับ: ต.ค., หลักสูตรปรับปรุง, มหาวิทยาลัยนครพนม, โปรด, อาคาร, ฐานราก, UNK, ตกใจ,\n",
      "Nearest to กว่า: ถึง, มดลูก, องศาเซลเซียส, นะจ๊ะ, ร้อยละ, ที่สุด, ประธานาธิบดีโดนัลด์, พระเครื่อง,\n",
      "Nearest to ลง: เต็มที่, งดงาม, ลูกน้อย, โลง, แอชลีย์, UNK, กรกฎาคม, @,\n",
      "Nearest to ราคา: ก.ค., บ้านเมือง, ดีเซล, จินตนาการ, หมุน, สุนทรพจน์, นายสุระ, สถานีตำรวจภูธรพรานกระต่าย,\n",
      "Nearest to ส่วน: ดวง, หลักสูตรปรับปรุง, มอเตอร์ส, ชั้น, ปิโตรเคมี, ไฮเนเก้น, งอก, พระราชวัง,\n",
      "Average loss at step  22000 :  4.4668494457\n",
      "Average loss at step  24000 :  4.48189836216\n",
      "Average loss at step  26000 :  4.40357357907\n",
      "Average loss at step  28000 :  4.3450999701\n",
      "Average loss at step  30000 :  4.3629738189\n",
      "Nearest to ผ่าน: เข้า, สวอนซี, เลขา, แอพ, อสุจิ, สับปะรด, แพท, สำนักงาน,\n",
      "Nearest to ๆ: เป็นอยู่, พิธีกร, เนื้อ, ถาด, นางแดง, จันทนลาช, รีเทนเนอร์, เพราะ,\n",
      "Nearest to มาก: สูง, เร็ว, พระธาตุศรีสองรัก, ดูแลรักษา, ผสมผสาน, พันธมิตร, พระสนิทวงศ์, หลักสูตรปรับปรุง,\n",
      "Nearest to เพราะ: แต่, ซึ่ง, ว่า, และ, หรือ, อย่าง, ซื้อเล่นรีบาวด์, โดย,\n",
      "Nearest to เมื่อ: อู, แล้ว, สภ.คลองหลวง, ตลอด, พันตำรวจโท, หลักสูตรปรับปรุง, นี้, หลักสูตรใหม่,\n",
      "Nearest to ที่: ร้อยละ, และ, องศาเซลเซียส, UNK, ซึ่ง, นี้, หลักสูตรปรับปรุง, เอ่ย,\n",
      "Nearest to ทำ: หลักสูตรปรับปรุง, ดำเนิน, UNK, พันตำรวจเอก, พระเครื่อง, พระอุโบสถ, อิเกีย, หน่วย,\n",
      "Nearest to กล่าว: ในหลวง, ลอยลำ, ฟุตบาต, ก็องเต้, พระบรม, ปล่อยปละละเลย, แน่ใจ, ประจักษ์,\n",
      "Nearest to เรา: เขา, สงสัย, ฝีมือ, จะ, เริ่ม, ตน, หลักสูตรปรับปรุง, ชัด,\n",
      "Nearest to และ: ซึ่ง, หรือ, โดย, UNK, แต่, เพื่อ, ที่, หลักสูตรปรับปรุง,\n",
      "Nearest to แต่: และ, ซึ่ง, เพราะ, หรือ, โดย, ว่า, ทาทา, นั้น,\n",
      "Nearest to รับ: โปรด, หลักสูตรปรับปรุง, มหาวิทยาลัยนครพนม, ต.ค., ไฮเนเก้น, ฐานราก, อาคาร, แอ๋ม,\n",
      "Nearest to กว่า: ที่สุด, ถึง, สุด, ,, มดลูก, เกือบ, สวิตเซอร์แลนด์, นะจ๊ะ,\n",
      "Nearest to ลง: เต็มที่, งดงาม, แอชลีย์, ลูกน้อย, ปิยวัฒน์, กรกฎาคม, ประยุกต์, โลง,\n",
      "Nearest to ราคา: ก.ค., หมุน, ดีเซล, บ้านเมือง, จินตนาการ, เพลิน, สภ.หาดใหญ่, สถานีตำรวจภูธรพรานกระต่าย,\n",
      "Nearest to ส่วน: หลักสูตรปรับปรุง, พระราชวัง, ท้องตลาด, มอเตอร์ส, และ, UNK, ดวง, โดย,\n"
     ]
    }
   ],
   "source": [
    "# Step 5: Begin training.\n",
    "num_steps = 30001\n",
    "\n",
    "with tf.Session(graph=graph) as session:\n",
    "  # We must initialize all variables before we use them.\n",
    "  init.run()\n",
    "  print(\"Initialized\")\n",
    "\n",
    "  average_loss = 0\n",
    "  for step in xrange(num_steps):\n",
    "    batch_inputs, batch_labels = generate_batch(\n",
    "        batch_size, num_skips, skip_window)\n",
    "    \n",
    "#     print('batch_inputs = ', batch_inputs);\n",
    "#     print('batch_labels = ', batch_labels);\n",
    "    \n",
    "    feed_dict = {train_inputs: batch_inputs, train_labels: batch_labels}\n",
    "\n",
    "    # We perform one update step by evaluating the optimizer op (including it\n",
    "    # in the list of returned values for session.run()\n",
    "    _, loss_val = session.run([optimizer, loss], feed_dict=feed_dict)\n",
    "    average_loss += loss_val\n",
    "\n",
    "    if step % 2000 == 0:\n",
    "      if step > 0:\n",
    "        average_loss /= 2000\n",
    "      # The average loss is an estimate of the loss over the last 2000 batches.\n",
    "      print(\"Average loss at step \", step, \": \", average_loss)\n",
    "      average_loss = 0\n",
    "\n",
    "    # Note that this is expensive (~20% slowdown if computed every 500 steps)\n",
    "    if step % 10000 == 0:\n",
    "      sim = similarity.eval()\n",
    "      for i in xrange(valid_size):\n",
    "        valid_word = reverse_dictionary[valid_examples[i]]\n",
    "        top_k = 8  # number of nearest neighbors\n",
    "        nearest = (-sim[i, :]).argsort()[1:top_k + 1]\n",
    "        log_str = \"Nearest to %s:\" % valid_word\n",
    "        for k in xrange(top_k):\n",
    "          close_word = reverse_dictionary[nearest[k]]\n",
    "          log_str = \"%s %s,\" % (log_str, close_word)\n",
    "        print(log_str)\n",
    "  final_embeddings = normalized_embeddings.eval()\n",
    "#   print('sim = ',sim, tf.shape(sim).eval(), tf.rank(sim).eval());\n",
    "#   print('final_embeddings = ',final_embeddings, tf.shape(final_embeddings).eval(), tf.rank(final_embeddings).eval());"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['UNK', 'ที่', 'การ', 'ใน', 'และ', 'มี', 'ได้', 'เป็น', 'ให้', 'ว่า', 'จะ', 'ของ', 'ไม่', 'มา', 'จาก', 'ความ', 'ไป', 'นี้', 'ผู้', 'กับ', 'ทำ', 'โดย', 'ปี', 'คน', 'วัน', ',', 'ตัว', 'ซึ่ง', 'อยู่', 'ก็', 'ขึ้น', 'ลง', 'ต้อง', 'รับ', 'อย่าง', 'งาน', 'ยัง', 'เข้า', 'เพื่อ', 'แต่', 'กัน', 'ต่อ', 'กล่าว', 'หรือ', 'ทาง', 'ส่วน', 'แล้ว', 'ออก', 'ถึง', 'บาท', 'ด้วย', 'นั้น', 'ใช้', 'ตาม', 'เมื่อ', 'ทั้ง', 'เกิด', 'ผล', 'นำ', 'หลัง', 'รถ', 'มาก', 'เงิน', 'กว่า', 'เรื่อง', 'ๆ', 'ดัง', 'อีก', 'ราย', 'ล้าน', 'ผ่าน', 'ดี', 'นัก', 'เวลา', 'จึง', 'พร้อม', 'รวม', 'ประเทศ', 'ร่วม', 'เพิ่ม', 'ส่ง', 'ขณะ', 'เจ้าหน้าที่', 'ทุน', 'ก่อน', 'พบ', 'ช่วง', 'เพราะ', 'ราคา', 'ครั้ง', 'ถูก', 'สามารถ', 'ไทย', 'เรา', 'เสีย', 'ทุก', 'ด้าน', 'จุด', 'สูง', 'จำนวน', 'คือ', 'เหตุ', 'บ้าน', 'ตลาด', 'เดือน', 'คาด', 'กลุ่ม', 'ขอ', 'ลด', 'น้ำ', 'เห็น', 'ปรับ', 'พื้นที่', 'ตน', 'หา', 'บริษัท', 'ใหม่', 'ค่า', 'ระดับ', 'ฯ', 'กำลัง', 'ประชาชน', 'ข้อ', 'ไว้', 'ขาย', 'ภาย', 'ใหญ่', 'คำ', 'อายุ', 'เมือง', 'ทีม', 'ดำเนิน', 'เปิด', 'นายก', 'ภาค', 'สำหรับ', 'หุ้น', 'ต่าง', 'คดี', 'เขา', 'เอง', 'ซื้อ', 'ตำรวจ', 'ประกอบ', 'ชาว', 'หน้า', 'ปัญหา', 'นอก', 'หาก', 'แรก', 'พ.ค.', 'ประมาณ', 'ข่าว', 'ธุรกิจ', 'ไร', 'รอง', 'ตรวจสอบ', 'แห่ง', 'กฎหมาย', 'กลับ', 'สร้าง', 'ช่วย', 'จัด', 'หนึ่ง', 'ผิด', 'ต้น', 'จน', 'เนื่อง', 'หลาย', 'รัฐบาล', 'คิด', 'ทั้งนี้', 'อาจ', 'ผลิต', 'รัฐมนตรี', 'รู้', 'ชีวิต', 'ถือ', 'แจ้ง', 'เช่น', 'คณะ', 'แบบ', 'สหรัฐ', 'กรณี', 'ปิด', 'ระหว่าง', 'โรง', 'บริเวณ', 'ร่าง', 'ตั้ง', 'หาย', 'โครงการ', 'เสนอ', 'สำคัญ', 'กำไร', 'ตั้งแต่', 'น้ำมัน', 'ชื่อ', 'เท่า', 'โลก', 'รอบ', 'ดู', 'สู่', 'สื่อ', 'ชาติ', 'สุด', 'รายงาน', 'ประชุม', 'เรียน', 'ลูก', 'ติด', 'เดินทาง', 'น่า', 'บริการ', 'ทราบ', 'ละ', 'ไตรมาส', 'รัฐธรรมนูญ', 'ข้อมูล', 'สั่ง', 'หน่วย', 'เศรษฐกิจ', 'ระยะ', 'เดียว', 'พัฒนา', 'แสดง', 'ขยาย', 'อื่น', 'อะไร', 'ค้า', 'สอบสวน', 'พรรค', 'ยอด', 'พิจารณา', 'จับ', 'ยนต์', 'ราชการ', 'ผม', 'เปิดเผย', 'ถ้า', 'ที่สุด', 'ก็ตาม', 'ภาพ', 'ระบบ', 'เฉพาะ', 'ต้องการ', 'ฝ่าย', 'ชาย', 'อัตรา', 'ใต้', 'ต่างๆ', 'ตรวจ', 'เลือกตั้ง', 'เริ่ม', 'กรรมการ', 'กลาง', 'เอา', 'ทั้งหมด', 'เด็ก', 'ตก', 'หลัก', 'น.', 'ระบุ', 'ประธาน', 'บน', 'ถาม', 'เครื่อง', 'เติบโต', 'ภัย', 'ประกาศ', 'รักษา', 'เล่น', 'สินค้า', 'บอก', 'บริหาร', 'จริง', 'สิ่ง', 'เคย', 'มอง', 'เพียง', 'สอง', 'ต่ำ', 'บาง', 'โอกาส', 'แนว', 'กำหนด', 'ใคร', 'จำกัด', 'อยาก', 'น้อย', 'หน้าที่', 'ประจำ', 'สัญญา', 'สาว', 'แรง', 'ตอน', 'สาย', 'สี', 'ประเทศไทย', 'ชุด', 'แผน', 'ต่อเนื่อง', 'เลย', 'รัฐ', 'เกี่ยวข้อง', 'ยา', 'ใด', 'ปัจจุบัน', 'ปฏิบัติ', 'เดิม', 'อดีต', 'ลูกค้า', 'เสียง', 'ดูแล', 'รอ', 'จังหวัด', 'พฤษภาคม', 'ล่าสุด', 'ขนาด', 'เที่ยว', 'ก่อ', 'ใช่', 'เกี่ยว', 'เชื่อ', 'ดอลลาร์', 'แม้', 'เกม', 'ยังคง', 'ขับ', 'คง', 'วัย', 'เกิน', 'จับกุม', 'เม.ย.', 'ท่อง', 'กอง', 'ตำแหน่ง', 'มัน', 'งบ', 'เลข', 'เป้าหมาย', 'คู่', 'ทะเบียน', 'นัด', 'ทหาร', 'วาง', 'ชั้น', 'ติดตาม', 'เก็บ', 'ร้าน', 'ร้าย', 'อำนาจ', 'ระเบิด', 'สนับสนุน', 'ตาย', 'ชี้', 'ห้อง', 'จีน', 'แก้ไข', 'สัปดาห์', 'มูลค่า', 'ช่วยเหลือ', 'เลือก', 'ร้อย', 'อันดับ', 'ยืนยัน', 'ตลอด', 'ณ', 'ชน', 'บุคคล', 'คสช.', 'แทน', 'ฉบับ', 'หญิง', 'คัน', 'เหมือน', 'ควร', 'หลักฐาน', 'พัก', 'เบื้อง', 'เผย', 'คืน', 'ทั่ว', 'หมู่', 'พนักงาน', 'ข้าว', 'ประเด็น', 'กระทำ', 'หมาย', 'ร้อง', 'ประตู', 'กกต.', 'หัวหน้า', 'ศพ', 'ตรง', 'ศึกษา', 'ประชามติ', 'หนัก', 'ประโยชน์', 'บาดเจ็บ', 'แค่', 'ลีก', 'เปลี่ยน', 'ฝน', 'นับ', 'เร่ง', 'แก่', 'พวก', 'นโยบาย', 'พูด', 'รุ่น', 'ยอม', 'กระทบ', 'นาย', 'สังคม', 'ศาล', 'เดิน', 'ปริมาณ', 'แนวโน้ม', 'ชอบ', 'แข่งขัน', 'ดิบ', 'สมาชิก', 'น', 'ชนะ', 'มือ', 'ง', 'ปลอด', 'โทษ', 'ไม้', 'ติดต่อ', 'ชัดเจน', 'ไฟฟ้า', 'แก้', 'สอบ', 'ปกติ', 'ข้าง', 'ประสาน', 'คะแนน', 'เพิ่มเติม', 'เหลือ', 'ตอบ', 'หมื่น', 'หวัง', 'สถานการณ์', 'รัก', 'เรือ', 'เสพ', 'อาหาร', 'เหนือ', 'ใกล้', 'สิทธิ', 'กรธ.', 'ใบ', 'เร็ว', 'ดอก', 'สภาพ', 'ปัจจัย', 'รายการ', 'สินเชื่อ', 'ถนน', 'สนช.', 'เหตุการณ์', 'ยก', 'แถลง', 'บิน', 'ยื่น', 'พยายาม', 'การณ์', 'เจ้าของ', 'ฐาน', 'พิเศษ', 'ควบคุม', 'ดัชนี', 'เข้าใจ', 'พา', 'สนใจ', 'สุดท้าย', 'อนาคต', 'หมด', 'แม่', 'ป้องกัน', 'ร', 'ก่อนหน้า', 'ยึด', 'หนุน', 'อย่า', 'สงบ', 'นาน', 'แชมป์', 'ไฟ', 'ยิ่ง', 'มาตรา', '+', 'จัดการ', 'ตะวัน', 'ยิง', 'พัน', 'เรียก', 'ซื้อขาย']\n",
      "[[  0.61542278  -6.18256744]\n",
      " [ -0.47188923   8.79240571]\n",
      " [ -4.91491717  -5.20186445]\n",
      " [ -1.85496749  16.90083074]\n",
      " [  1.31435086   8.45619589]\n",
      " [ 12.96650161   8.12784805]\n",
      " [  6.80842675   4.81682012]\n",
      " [ 14.01542589   6.11653699]\n",
      " [  1.4356917    8.9566021 ]\n",
      " [  0.27704645  12.87716868]\n",
      " [  4.50596209   4.75070018]\n",
      " [ -0.02986489  16.12912043]\n",
      " [ -0.65042769   8.74183521]\n",
      " [  1.96475507   2.71788585]\n",
      " [ -1.18719975  14.21654903]\n",
      " [ -4.28664131   9.02115125]\n",
      " [  5.29404067   1.8415139 ]\n",
      " [ -2.16135234   5.6729309 ]\n",
      " [ -3.48725252  -6.78794315]\n",
      " [  1.59367967  21.00485135]\n",
      " [ 19.52757833   5.70848872]\n",
      " [ -1.50515563  11.06822838]\n",
      " [-16.8170214    0.06648887]\n",
      " [ -4.37581554 -10.00388058]\n",
      " [-14.50427118  -0.92336539]\n",
      " [-13.47138745   6.57928637]\n",
      " [  3.92039877 -12.73598335]\n",
      " [ -0.04850565  13.43301621]\n",
      " [ -0.2865576    0.10459872]\n",
      " [  1.81942259   8.92224619]\n",
      " [ -7.74754804   3.6115247 ]\n",
      " [ 21.73475851   2.46796664]\n",
      " [  6.6500156    5.08599473]\n",
      " [ 14.06417174   2.42184516]\n",
      " [ -2.36423741   9.25666146]\n",
      " [ -6.38530015 -10.60578881]\n",
      " [  3.83196177   5.59586795]\n",
      " [ 20.82296638   1.37650807]\n",
      " [  8.19747654   3.70303399]\n",
      " [  0.33449821  10.34488814]\n",
      " [  2.06798342  18.8659769 ]\n",
      " [ -4.44752845  14.03006268]\n",
      " [ 12.14060693  -3.39439873]\n",
      " [  0.49411311  11.30271971]\n",
      " [-22.47907865   1.2487791 ]\n",
      " [ -3.0680153   12.42322833]\n",
      " [  5.66981658   8.59438319]\n",
      " [ 14.62358526  16.27013522]\n",
      " [ -4.82439044  12.43418583]\n",
      " [-12.00725669   3.38570599]\n",
      " [  2.44538569  14.73127158]\n",
      " [ -3.33245797   6.67011738]\n",
      " [ 17.92897967   4.67872139]\n",
      " [  4.32590893  13.95636368]\n",
      " [  3.28934765  11.68059288]\n",
      " [ -6.95201432  16.62344572]\n",
      " [ 12.48617607   7.17850654]\n",
      " [ -4.32465441  -5.32013706]\n",
      " [ 19.91264553   2.26744407]\n",
      " [  0.81925861  22.48438913]\n",
      " [-14.46186106  -8.49704161]\n",
      " [ -6.00579916   6.99899494]\n",
      " [-18.65802162  -7.76655701]\n",
      " [ -3.31607098  11.40122964]\n",
      " [  1.51264154  -6.64663542]\n",
      " [ -3.24827087   3.79764559]\n",
      " [ -2.66135759  14.6867777 ]\n",
      " [ -5.56028324  17.49435022]\n",
      " [-19.74631243   7.86535049]\n",
      " [-12.40266802   9.52329893]\n",
      " [ 22.47465877   0.67081731]\n",
      " [ -5.61085246   6.32767727]\n",
      " [  2.41176002 -14.3853394 ]\n",
      " [ -5.18686189 -19.10096158]\n",
      " [  7.16328832   6.77753496]\n",
      " [  2.26327363  -1.59830925]\n",
      " [ -7.1059894   19.48834721]\n",
      " [ -8.51217848 -11.4352341 ]\n",
      " [  3.9466959   -1.63535452]\n",
      " [ -9.15366765   6.58037083]\n",
      " [ 19.79181685   2.96722947]\n",
      " [-14.29177355  -1.21070958]\n",
      " [  1.60238729 -10.41081586]\n",
      " [-12.65517212   6.89609067]\n",
      " [  7.43111675   7.74277002]\n",
      " [ 17.12366604  -3.91837221]\n",
      " [-18.53213199   2.75042291]\n",
      " [ -1.83927964   9.54561008]\n",
      " [-10.13762421 -10.30563648]\n",
      " [-15.86595476  -0.03511819]\n",
      " [  8.47084601   5.1347285 ]\n",
      " [  6.59263686   4.84553016]\n",
      " [ -9.89570415  14.13497303]\n",
      " [  3.09526248   2.68298899]\n",
      " [ 22.06883224  -6.14895142]\n",
      " [ -7.77163886  15.65471142]\n",
      " [  6.21158207  20.67074133]\n",
      " [ -8.47171901  20.03738385]\n",
      " [ -8.27181961   6.8352567 ]\n",
      " [ -8.50036803  12.14976251]\n",
      " [  1.58993805  15.10294091]\n",
      " [ -2.58160853  -1.06342818]\n",
      " [-17.14470616   5.75429379]\n",
      " [-12.49020522  -4.08784507]\n",
      " [-16.70765282   1.84807409]\n",
      " [ 10.45259454  -2.50271527]\n",
      " [  4.73934617  -4.34593738]\n",
      " [ 19.06172107  -8.57557997]\n",
      " [-11.58543969   5.5586764 ]\n",
      " [-10.73867546 -20.72160583]\n",
      " [ 11.21304791  -4.44928004]\n",
      " [ 15.37778046   6.08636525]\n",
      " [-14.00010255 -12.89573602]\n",
      " [  5.51868184   1.93842508]\n",
      " [ 16.82052026   2.76589123]\n",
      " [ -0.16367786  -5.97770785]\n",
      " [ -7.86670916  14.58098792]\n",
      " [ -6.75632426  -4.46308864]\n",
      " [-15.44965662   4.85574252]\n",
      " [ 16.805631    -0.75930551]\n",
      " [  3.40475564   9.99674885]\n",
      " [ -4.94219304  -9.19251994]\n",
      " [ -2.94204639 -22.28201654]\n",
      " [  2.73642695   0.4858204 ]\n",
      " [-11.80734545  15.21633834]\n",
      " [-12.57715632 -12.72499148]\n",
      " [  2.11308197  16.99202586]\n",
      " [ -2.14282855  -4.20478893]\n",
      " [  4.11116603  15.77386109]\n",
      " [-10.48280915 -15.96060092]\n",
      " [  2.86037892  -2.83682043]\n",
      " [ 19.92205935   6.32893438]\n",
      " [ 15.69827924   9.02389741]\n",
      " [  1.86394404 -17.23444606]\n",
      " [-20.86174756   3.58262357]\n",
      " [ -3.62284528  16.2960637 ]\n",
      " [ -8.15656914 -14.62797652]\n",
      " [ -9.10677628  15.75440209]\n",
      " [  7.88404852 -20.5690348 ]\n",
      " [  5.75189079   2.04317177]\n",
      " [  2.53124228   1.454322  ]\n",
      " [-13.57070933  14.54176401]\n",
      " [  0.83916939 -11.75908304]\n",
      " [ -8.64018728  21.62200074]\n",
      " [ -1.94275784  -9.18080783]\n",
      " [-18.78568335  13.77012541]\n",
      " [ -6.89468348 -19.18333954]\n",
      " [ -1.54140102  24.70021176]\n",
      " [  2.64965203   5.26449808]\n",
      " [-12.46914692  17.63903391]\n",
      " [-23.67989916  -1.64984548]\n",
      " [-10.80200672  10.98232783]\n",
      " [  2.84704147 -18.49560476]\n",
      " [ -6.80337585  -9.52603449]\n",
      " [  7.47306673  12.63848898]\n",
      " [-20.08791536 -12.54792108]\n",
      " [ 17.08002621   4.3632674 ]\n",
      " [-19.59580518   7.95518843]\n",
      " [  9.45592608 -19.45528567]\n",
      " [  6.90726825  11.00297992]\n",
      " [ 15.81661374   3.9974262 ]\n",
      " [  5.32756401  -4.79342788]\n",
      " [ 19.98904091   7.68944679]\n",
      " [ -0.17207331   1.05536212]\n",
      " [ 10.22375742  -0.64899644]\n",
      " [-13.39653031 -10.73890632]\n",
      " [ -4.38559506  21.18285415]\n",
      " [ -3.09300481  24.64369506]\n",
      " [ -7.94614642  14.21874549]\n",
      " [  2.9970535   -7.46356526]\n",
      " [ 13.24376746  -4.31414285]\n",
      " [ -0.66580145  12.00197462]\n",
      " [  1.88679026   7.72648066]\n",
      " [ 22.71557137   3.90234491]\n",
      " [ -6.38030979 -22.69253554]\n",
      " [  8.38394729  -0.77490526]\n",
      " [  8.11514321   0.24821667]\n",
      " [ 13.15205967   4.73805836]\n",
      " [ 14.73246698  -8.76578247]\n",
      " [ -0.5937556   16.6942439 ]\n",
      " [  1.84799016  -8.3607235 ]\n",
      " [ -1.92512632  11.63843705]\n",
      " [ -7.59336133 -14.61977017]\n",
      " [ -4.13464183 -17.24711536]\n",
      " [-14.24815741   3.85746993]\n",
      " [ -3.57275054  18.05841141]\n",
      " [ -9.65045552  -4.42479067]\n",
      " [-16.78188259   4.79223932]\n",
      " [-12.13701579   4.33001233]\n",
      " [ 12.80957607  19.27809272]\n",
      " [ 14.55642615  15.91050287]\n",
      " [ -7.49239989  -2.32158454]\n",
      " [ 20.12563237  -8.25899311]\n",
      " [ -5.78561606   0.71683898]\n",
      " [-21.4576045    4.149241  ]\n",
      " [ -5.47795528  13.15404001]\n",
      " [-13.40654342   2.64242843]\n",
      " [ 10.57983409   0.74331489]\n",
      " [-12.90025235  -1.47296365]\n",
      " [-21.11032582  -3.92111723]\n",
      " [-17.86231705   3.37873896]\n",
      " [ 26.20131197   3.02655351]\n",
      " [ -1.11127186  21.52057976]\n",
      " [ 14.06822169 -12.28150954]\n",
      " [  0.82759377 -14.60722004]\n",
      " [ -7.17291842   9.76293597]\n",
      " [ 13.33734701  -4.83425205]\n",
      " [ -7.96970179  -3.26576779]\n",
      " [ 24.13674364   0.40654286]\n",
      " [ 10.23588995   2.68767121]\n",
      " [  9.47735727  -8.75733776]\n",
      " [ 20.03849691   2.11152312]\n",
      " [  7.18731242   7.86986251]\n",
      " [ -6.10852001  -8.4608567 ]\n",
      " [ 15.36820325  -1.57399356]\n",
      " [ -9.64240951  13.88306374]\n",
      " [-15.94078683  -0.44935567]\n",
      " [  6.60034079 -12.93632614]\n",
      " [ -1.66074082 -20.0704802 ]\n",
      " [ 20.33666003 -13.6023473 ]\n",
      " [  2.75726943  -8.94444856]\n",
      " [ -7.9396224  -12.78858382]\n",
      " [-19.03943951   1.45302299]\n",
      " [ -2.92967165   5.45466061]\n",
      " [  5.15553317  18.20866786]\n",
      " [ 17.5522462   10.00429344]\n",
      " [ 16.62349695   5.68892914]\n",
      " [  7.78832863  -7.94677477]\n",
      " [  4.4327918   13.66315943]\n",
      " [ 22.96605074  -0.58331089]\n",
      " [ 22.64432705   4.94626903]\n",
      " [  1.58050273  -7.92501712]\n",
      " [ -9.42383921  -6.96685837]\n",
      " [ 15.24580686   0.12590521]\n",
      " [ 17.30870002  12.40141567]\n",
      " [-14.81886765  -8.07332682]\n",
      " [  8.46288483 -14.21643024]\n",
      " [  2.99561699   4.2236096 ]\n",
      " [ 13.16122522  -2.54875041]\n",
      " [  4.01232644   4.77597632]\n",
      " [ -6.55939193  11.22043167]\n",
      " [ 14.10069457  -7.53804609]\n",
      " [ 12.34014606 -11.8656271 ]\n",
      " [ -5.60455404 -15.85414513]\n",
      " [-18.09986863  -3.77354642]\n",
      " [  8.41005133  -1.64142304]\n",
      " [ -3.66410185   1.75215978]\n",
      " [  9.69891482  17.59850117]\n",
      " [ 12.92893528  -7.27962729]\n",
      " [-15.38437911  16.44973049]\n",
      " [ -9.71267064  -8.29268526]\n",
      " [ 17.9200861    1.24357415]\n",
      " [ 23.62406635   7.8348952 ]\n",
      " [  7.02112545   3.39875519]\n",
      " [ 15.62208337 -14.07828916]\n",
      " [-14.81813599  16.47771537]\n",
      " [  1.70104387   0.90157372]\n",
      " [-13.01409861  12.29889435]\n",
      " [ -5.35767646  -9.06201506]\n",
      " [ 11.80575966   6.36147299]\n",
      " [ -8.14396496  -5.56169003]\n",
      " [-15.22608181  -6.84519635]\n",
      " [ 13.77993592  -2.00231987]\n",
      " [  6.53389894 -15.84431301]\n",
      " [-12.05540028  19.74386495]\n",
      " [ 16.02009704   1.17715598]\n",
      " [ -8.60787735   0.6505729 ]\n",
      " [ -1.82997929  -3.03036635]\n",
      " [-10.73442017 -12.64062382]\n",
      " [ 14.23407687   0.70949248]\n",
      " [ 16.0972772   13.79789439]\n",
      " [  7.26613826  -8.85103457]\n",
      " [ -8.48330842 -11.23172588]\n",
      " [ 16.69617094  -5.88913067]\n",
      " [  6.36935155  16.52760962]\n",
      " [  6.85479302 -12.06792126]\n",
      " [-13.92340946   1.17533884]\n",
      " [  2.82123399   6.47813793]\n",
      " [ 15.62280697  -5.68926611]\n",
      " [-12.86854014  12.61763498]\n",
      " [-19.18651436  14.28367616]\n",
      " [ -6.35054364   6.51932863]\n",
      " [ -9.03368337  16.28096942]\n",
      " [ -4.14608856  -2.772685  ]\n",
      " [  7.83001548 -20.7467109 ]\n",
      " [ -5.89798535 -20.30865281]\n",
      " [  4.77745567 -13.981337  ]\n",
      " [ 12.07512657  19.37416786]\n",
      " [  9.00315219   7.83428791]\n",
      " [ -8.43550838   3.95491377]\n",
      " [  6.13364083  -3.09502021]\n",
      " [ -2.05424865  18.97687866]\n",
      " [ -1.0339183  -13.42703512]\n",
      " [ 10.66295393  15.42118266]\n",
      " [ -7.18757123  -9.13056555]\n",
      " [-20.44301254   1.73153339]\n",
      " [ -9.96604299  -2.68476786]\n",
      " [  6.15555515 -18.13874439]\n",
      " [  4.26995728 -15.89483248]\n",
      " [ -0.40345304 -11.62203578]\n",
      " [ -3.18592307  -4.43029366]\n",
      " [ -5.59810217   1.3053319 ]\n",
      " [  4.44338987  11.23958135]\n",
      " [-19.91702003   4.25438713]\n",
      " [  4.87562433  -4.16993238]\n",
      " [ -3.17553075 -15.76086552]\n",
      " [  9.80886329  -7.44153833]\n",
      " [ -1.46700088   7.55879166]\n",
      " [ 18.58417518  14.9634872 ]\n",
      " [ -2.13447473   6.4088016 ]\n",
      " [ 11.7377217  -17.21650463]\n",
      " [ -1.12746638 -10.1984829 ]\n",
      " [  5.30639925  -1.32179652]\n",
      " [ 24.86155248   3.84252026]\n",
      " [ 17.9173728  -10.56714819]\n",
      " [ -9.85056832 -12.31146236]\n",
      " [ 10.76910972   5.33708555]\n",
      " [  9.32131     -3.56686826]\n",
      " [  4.16758674  22.06900007]\n",
      " [ 17.96631852  -3.4762367 ]\n",
      " [ 21.90498312   7.31663943]\n",
      " [  7.21899086  13.38852309]\n",
      " [  4.26891503  -0.70727624]\n",
      " [ 14.3935806   -7.21461089]\n",
      " [-11.52746846   2.4666194 ]\n",
      " [  7.34559529  10.28338174]\n",
      " [-17.87523085  -2.72243267]\n",
      " [  2.91506608   6.50484622]\n",
      " [ 10.95037003  12.35339   ]\n",
      " [  1.55421197  -6.80269917]\n",
      " [  6.65957036  14.48019633]\n",
      " [ 10.05386454  14.90222068]\n",
      " [ 19.06390498  -5.61405862]\n",
      " [-23.2240341   -7.39121782]\n",
      " [ 20.81835217  -3.24901416]\n",
      " [  6.67814109  21.71746771]\n",
      " [ -6.3484595  -22.47308651]\n",
      " [  2.15625662   3.96869539]\n",
      " [ -5.5333721   -4.22641077]\n",
      " [-16.3546445    9.46977559]\n",
      " [ -6.7608306   -1.78639059]\n",
      " [  8.93921713  18.01173345]\n",
      " [-17.17440892 -12.72727071]\n",
      " [ -9.49828429   3.96102532]\n",
      " [ -0.40829487 -16.46509239]\n",
      " [ 14.14407846   9.44022785]\n",
      " [-20.00889815  -0.47884813]\n",
      " [ 16.88600006 -12.58707267]\n",
      " [ 11.27309923   3.56939001]\n",
      " [-11.65247391  -7.06332693]\n",
      " [ 12.15776121   2.32072047]\n",
      " [  6.67581922  -1.03245046]\n",
      " [ -2.01827212  -6.53832386]\n",
      " [ 23.16711649   7.73728335]\n",
      " [ 14.89700967   7.6429769 ]\n",
      " [  9.60627721   3.35254709]\n",
      " [-12.59124615  -8.81259935]\n",
      " [-13.20252535 -16.40311678]\n",
      " [ -2.30447257  -9.83574029]\n",
      " [-16.79961075  -0.97053219]\n",
      " [ -8.81304959  21.2452355 ]\n",
      " [  5.57221295  -6.66554685]\n",
      " [ -1.59779421  -1.66133239]\n",
      " [-14.56037499   6.52083138]\n",
      " [  7.86799859  -8.51972515]\n",
      " [ 18.38005654  -2.86034509]\n",
      " [ -5.37001838  20.54608731]\n",
      " [-10.31596728   9.17217911]\n",
      " [-11.28859991 -11.35934348]\n",
      " [ -0.41853792  -6.76827002]\n",
      " [  3.82203578  -9.04132762]\n",
      " [ -6.1857206   -1.01395326]\n",
      " [ -8.62001708   1.72210728]\n",
      " [  7.83076955  18.82502621]\n",
      " [  1.49224364  -2.73298073]\n",
      " [ -3.79763625   2.85357196]\n",
      " [  3.58813087   8.11327959]\n",
      " [ 10.9963714  -10.20774586]\n",
      " [ 18.07202428  15.30218839]\n",
      " [  8.98203314 -15.53240126]\n",
      " [ 16.9019358   -2.02791048]\n",
      " [ -6.00065504  12.6503376 ]\n",
      " [ -1.37823116  17.99248795]\n",
      " [-16.5270019    8.28682543]\n",
      " [  1.55366794 -12.14988266]\n",
      " [  0.72723378 -18.84802132]\n",
      " [ -8.60344693 -17.94011717]\n",
      " [ 21.78523294  -5.5646836 ]\n",
      " [ -1.81863601  -2.92011705]\n",
      " [ 16.17302226 -16.26868675]\n",
      " [-10.59421497  -0.04906322]\n",
      " [ 22.9854177   -4.00823579]\n",
      " [  3.62456088 -10.4077408 ]\n",
      " [  9.47192931 -13.47147458]\n",
      " [  1.70134204  19.51865077]\n",
      " [  9.72443741 -19.41645444]\n",
      " [  3.24535544  -5.27995801]\n",
      " [ -5.93110309   3.01403211]\n",
      " [ -6.60617924  -7.02527189]\n",
      " [ -4.60588015  -0.64246249]\n",
      " [  2.75284179  11.66025698]\n",
      " [-11.91063756 -16.55338869]\n",
      " [  7.76137867  17.52279133]\n",
      " [  9.28263019  -5.09140551]\n",
      " [  1.09745576   3.85535696]\n",
      " [  8.3737628    1.66496682]\n",
      " [ 20.4268822  -11.1257251 ]\n",
      " [  7.57532821  -2.63394806]\n",
      " [ 10.58029221 -10.22529505]\n",
      " [  8.8330908  -15.98012701]\n",
      " [-14.60434696  -4.44724061]\n",
      " [ 17.89240443  -9.7528142 ]\n",
      " [  5.26847216  -9.45253873]\n",
      " [-11.09108927   2.1172341 ]\n",
      " [  0.67469282 -16.69816968]\n",
      " [ -9.54421997  -1.97724465]\n",
      " [ 12.52305658  -0.62243512]\n",
      " [ -0.98975093 -21.37281686]\n",
      " [ -5.31238334  -6.65961932]\n",
      " [ -4.00439777 -17.93632735]\n",
      " [-12.81340169  -5.15012303]\n",
      " [-22.43716518  -3.57828867]\n",
      " [  0.51345697  -8.20466612]\n",
      " [-18.21573048  -8.96953958]\n",
      " [ 20.07413122   9.52824963]\n",
      " [-10.49180228 -20.29652001]\n",
      " [ -1.99425737  -7.54195863]\n",
      " [ 10.06850615 -12.94687135]\n",
      " [-14.42537605 -15.14954804]\n",
      " [  8.5233002   -6.32552196]\n",
      " [  3.95111663  -0.70707682]\n",
      " [  8.10869019  -6.48730325]\n",
      " [ -3.70931698 -15.42961207]\n",
      " [ 12.84802482  11.94796167]\n",
      " [ 17.69513359   7.08778776]\n",
      " [ 11.43045829  -0.47747775]\n",
      " [-15.5058245  -13.36831932]\n",
      " [ 13.49089167  14.87990392]\n",
      " [  1.12859244 -23.16672018]\n",
      " [-18.62500167  11.20986718]\n",
      " [ -3.21979389  -0.51755632]\n",
      " [ 16.62344157  -9.24224975]\n",
      " [-11.48749337   9.76714908]\n",
      " [ 11.67441374   0.82408082]\n",
      " [ -1.65194982 -18.77350254]\n",
      " [ -5.1764843    4.65282999]\n",
      " [  1.49478111 -14.13376496]\n",
      " [  1.32780749  -4.44401541]\n",
      " [  4.06963292 -13.02233608]\n",
      " [-16.18317848  15.49994849]\n",
      " [ -2.11709324   2.56677795]\n",
      " [  3.24586701 -19.82162374]\n",
      " [-17.60342326  -5.97224566]\n",
      " [-10.8501151   -6.18565489]\n",
      " [ -8.67364968   7.09458381]\n",
      " [ -8.81907518  10.80378826]\n",
      " [-11.8818194  -13.40527734]\n",
      " [  3.60734667 -19.80473929]\n",
      " [  0.34651432   0.36445573]\n",
      " [ -4.30367077 -13.64440039]\n",
      " [ -0.26704737  -1.42311385]\n",
      " [ -5.85815234   9.26850733]\n",
      " [-17.80979648  12.58759508]\n",
      " [-14.23782442  -5.26383808]\n",
      " [ 13.78936048 -10.26204359]\n",
      " [ 20.72131231  -2.80424334]\n",
      " [ 20.93962749  -8.20182459]\n",
      " [  9.23337527  10.82380542]\n",
      " [  2.7584864    3.52891323]\n",
      " [-16.35476518  10.26920624]\n",
      " [ 11.1065974  -14.43841089]\n",
      " [  5.69671452 -11.53503758]\n",
      " [ 19.3637832  -13.65352427]\n",
      " [ 12.07140793  -7.36745214]\n",
      " [ 10.41328626 -12.6001617 ]\n",
      " [ 14.44213971  12.0369614 ]\n",
      " [  4.16829654  -6.52869369]\n",
      " [-11.96967294  18.46395638]\n",
      " [ -1.69177081 -13.37231865]\n",
      " [-11.58115445  -0.51568569]\n",
      " [ -2.627414   -15.54135823]\n",
      " [ 16.4442108  -12.76700311]\n",
      " [ 13.42529438 -14.81928986]\n",
      " [  3.20666761  18.85165587]\n",
      " [  7.59326325  -4.01351655]\n",
      " [ -1.55758027   2.0701557 ]\n",
      " [ 11.73113594  15.8419681 ]\n",
      " [ 10.51705905  11.54988954]\n",
      " [  9.3702231   14.15977251]\n",
      " [-18.34318943  -6.79752293]\n",
      " [ 10.83688231   8.17700672]\n",
      " [  6.77508193  11.61085986]\n",
      " [ 10.11676565  -5.23084434]\n",
      " [-16.98186152  13.50156949]\n",
      " [ 13.34858634 -17.80980429]\n",
      " [ -0.57621333  15.00757136]\n",
      " [-17.44412633  -9.63131541]\n",
      " [-13.49631251  11.12859875]\n",
      " [ 21.32956711  11.32858955]\n",
      " [ 16.64879091   8.93372999]]\n"
     ]
    }
   ],
   "source": [
    "# Step 6: Visualize the embeddings.\n",
    "\n",
    "def plot_with_labels(low_dim_embs, labels, filename='tsne_thai.png'):\n",
    "  assert low_dim_embs.shape[0] >= len(labels), \"More labels than embeddings\"\n",
    "  plt.figure(figsize=(18, 18))  # in inches\n",
    "  for i, label in enumerate(labels):\n",
    "    x, y = low_dim_embs[i, :]\n",
    "    plt.scatter(x, y)\n",
    "    plt.annotate(label,\n",
    "                 xy=(x, y),\n",
    "                 xytext=(5, 2),\n",
    "                 textcoords='offset points',\n",
    "                 ha='right',\n",
    "                 va='bottom',\n",
    "                 fontname='Garuda')\n",
    "\n",
    "  plt.savefig(filename)\n",
    "\n",
    "try:\n",
    "  from sklearn.manifold import TSNE\n",
    "  import matplotlib\n",
    "  from matplotlib import rcParams\n",
    "  matplotlib.rc('font', family='Garuda')\n",
    "  import matplotlib.pyplot as plt\n",
    "  rcParams['font.family'] = 'sans-serif'\n",
    "  rcParams['font.sans-serif'] = ['Garuda']\n",
    "\n",
    "  tsne = TSNE(perplexity=30, n_components=2, init='pca', n_iter=5000)\n",
    "  plot_only = 500\n",
    "  low_dim_embs = tsne.fit_transform(final_embeddings[:plot_only, :])\n",
    "  labels = [reverse_dictionary[i] for i in xrange(plot_only)]\n",
    "  print(labels);\n",
    "  print(low_dim_embs);\n",
    "  plot_with_labels(low_dim_embs, labels)\n",
    "\n",
    "except ImportError:\n",
    "  print(\"Please install sklearn, matplotlib, and scipy to visualize embeddings.\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.5.3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
